//引入插件
const nodemailer = require('nodemailer');
const { codeModel } = require('../model');
//创建邮箱发送对象
const transporter = nodemailer.createTransport({
    //发送的邮箱类型
    host:'smtp.qq.com',
    //端口号 //固定
    port:465,
    //开启文件加密
    secure:true,
    auth:{
        //发送使用的qq邮箱
        user:'3134504258@qq.com',
        //qq邮箱授权码
        pass:'acixtcdusxtcdfgi'
    }
})
//创建一个函数，返回一个随机的六位数验证码
const getCode = ()=>{
    let code = '';
    for(let i = 0;i<6;i++){
        code += Math.floor(Math.random()*10);
    }
    return code;
}
//发送验证码
exports.sendCode = async (req,res)=>{
    // res.status(200).json({
    //     code:200,
    //     msg:'发送成功'
    // })
    let code = getCode();
    const MailOptions = {
           //发送的邮箱
           from:'3134504258@qq.com',
           //接收的邮箱
           to:req.body.email,
           //主题
           subject:'验证码',
           //发送的内容
           html:`<h1>您的验证码是：${code}</h1>`
    }
    transporter.sendMail(MailOptions, async (err,info)=>{
        if(err){
            res.status(500).json({
                code:500,
                msg:'发送失败'
            })
        }else{
            try {
                let dbBack = new codeModel({
                    email:req.body.email,
                    code:code
                })
                await dbBack.save();
                res.status(200).json({
                    code:200,
                    msg:'发送成功'
                })
                //一分钟之后清空这条记录
                setTimeout(async ()=>{
                    await codeModel.deleteOne({email:req.body.email});
                },60000)
             
                
            } catch (error) {
                res.status(500).json({
                    code:500,
                    msg:'发送失败'
                })
            }
           
        }
    })
}